home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 7 / FM Towns Free Software Collection 7.iso / data / nyan_e2 / nyane2_v.plp < prev    next >
Text File  |  1993-11-30  |  21KB  |  897 lines

  1. /**********  受信ログを閲覧する  ~外部コマンド非使用版~  v1.04a用 **********/
  2. %ok{[MES]
  3.     select({ }|MES,5,,{ OK?})
  4. };
  5. %note{[MES]
  6.     footnote({ 処理する}|MES|{のログファイルを選んでください});
  7. };
  8. %DeleteMemo{
  9.     loop({
  10.         case(@mlast>4,
  11.         {Yes},{    case(@mcheck,0,{mopen(@mlast,0,21,80,62)});
  12.             mclose(3);
  13.             im({Yes});
  14.         },{No},{im({No});
  15.         });
  16.     });
  17.     mclear(2); mclear(3); mclear(4);
  18. };
  19.  
  20. %mcopy{[ORI,NEW]
  21.     var now[5];
  22.     now:=0;
  23.     %max    @nolmemo(ORI);
  24.     loop({
  25.         madd(NEW,@memo(ORI,now+1,memomax));
  26.         case(now+memomax<max,
  27.         {Yes},{    now:=now+memomax;
  28.             im({Yes});
  29.         },{No},{im({No});
  30.         });
  31.     });
  32. };
  33.  
  34. %mmove{[ORI,First,End,NEW]
  35.     var now[5];
  36.     now:=First-1;
  37.     loop({
  38.         case(now+memomax<End,
  39.         {Yes},{    madd(NEW,@memo(ORI,now+1,memomax));
  40.             now:=now+memomax;
  41.             im({Yes});
  42.         },{No},{madd(NEW,@memo(ORI,now+1,End-now));
  43.             im({No});
  44.         });
  45.     });
  46. };
  47.  
  48. %boadmenu{[fname,type,ForumN,First,Count]
  49.     var linenum[8];
  50.     var memnum[6];
  51.     var TREE[4];
  52.     %resTitle{[title]
  53.         var org[80];
  54.         var num[3];
  55.         org:=title;
  56.         num:=0;
  57.         loop({
  58.         %after    @getchar(org,4,80);
  59.         case(@getchar(org,1,3),
  60.         {Re:},  { num:=num+1; org:=after;    im({Yes});
  61.         },{re:},{ num:=num+1; org:=after;    im({Yes});
  62.         },{RE:},{ num:=num+1; org:=after;    im({Yes});
  63.         },{Re*},{ num:=num+@head(after,{:});
  64.               org:=@body(after,{:});    im({Yes});
  65.         },     ,{
  66.             case(num==0,
  67.             {Yes},{ org:={Re:}|org;
  68.             },   ,{ org:={Re*}|(num+1)|{:}|org;
  69.             });
  70.             im({No});
  71.         });
  72.         });
  73.         im(org);
  74.     };
  75.  
  76.     %SetTitle{
  77.         var idp[2];
  78.         var tip[2];
  79.         %Line @memo(2,linenum,1);
  80.         %HeadLine{[ATTR]
  81.             var st[2];
  82.             var en[2];
  83.             case(ATTR,
  84.             {NUM},{
  85.             st:=1;
  86.             case(type,
  87.             {Forum},{case(MesType,{OLD},{en:=3},{NEW},{en:=5});
  88.             },{Patio},{en:={5};
  89.             });
  90.             },{TITLE},{
  91.             en:=80;
  92.             case(type,
  93.             {Forum},{case(MesType,{OLD},{st:=39},{NEW},{st:=40});
  94.             },{Patio},{st:=40;
  95.             });
  96.             });
  97.             im(@getchar(@memo(4,1,1),st,en));
  98.         };
  99.         case(type,
  100.         {Forum},{
  101.             IndexLine:={Forum:}
  102.                 |@getchar(ForumN|{       },1,8)|{/}|num|{/};
  103.             case(MesType,{OLD},{IndexLine:=IndexLine|{00}});
  104.             IndexLine:=IndexLine|@HeadLine({NUM});
  105.             Wtitle:=@HeadLine({TITLE})
  106.         },{BUL},{
  107.             IndexLine:={Forum:}|@getchar(ForumN|{       },1,8)
  108.                     |{/  /BUL  };
  109.             Wtitle:=@getchar(Line,34,80);
  110.         },{HP},{
  111.             IndexLine:={HP   :}|@getchar(ForumN|{       },1,8)
  112.                     |{         };
  113.             Wtitle:=@getchar(Line,39,80);
  114.             %WTITLE    @getchar(@body(Wtitle,{:}),1,2);
  115.             case(WTITLE={Re} || WTITLE={re} || WTITLE={RE},{Yes},{
  116.                 Wtitle:=@body(Wtitle,{:});
  117.             });
  118.         },{Patio},{
  119.             IndexLine:={Patio:}|@getchar(ForumN|{       },1,8)|
  120.                     {/  /}|@HeadLine({NUM});
  121.             Wtitle:=@HeadLine({TITLE});
  122.         },{Mail},{
  123.             case(@getchar(Line,24,4)<>{ PC>},
  124.             {Yes},{    IndexLine:={Mail :}|@getchar(Line,27,8)
  125.                     |{         };
  126.             },{No},{IndexLine:={PCVAN:}|@getchar(@memo(4,1,1),24,8)
  127.                     |{         };
  128.             });
  129.             Wtitle:=@getchar(Line,42,80);
  130.         });
  131.         case(kind,{Yes},{
  132.             %TL    @memo(4,1,1);
  133.             case(type,
  134.             {Forum},{case(MesType,{OLD},{idp:={11}; tip:={39}},
  135.                           {NEW},{idp:={13}; tip:={40}})
  136.             },{BUL},{idp:={7}; tip:={31};
  137.             },{HP},{idp:={24}; tip:={38};
  138.             },{Patio},{idp:={13}; tip:={40};
  139.             },{Prof},{idp:={24}; tip:={24};
  140.             });
  141.             IndexLine:={Mail :}|@getchar(TL,idp,8)|{         };
  142.             Wtitle:=@getchar(TL,tip,80);
  143.         });
  144.         Wtitle:=@resTitle(Wtitle);
  145.         case(type={HP},{Yes},{
  146.             %tardata  @head(ForumN,{ });
  147.             case(@SelHandle<>{},{Yes},{
  148.                 Wtitle:=@head(Wtitle,{\n});
  149.                 case( InsHan,
  150.                 {HEAD},{Wtitle:=@SelHandle|{:}|Wtitle},
  151.                 {TAIL},{Wtitle:=Wtitle|{<}|@SelHandle}
  152.                 );
  153.             });
  154.         });
  155.         Wtitle:=@head(Wtitle,{\n});
  156.         Wtitle2:=Wtitle;
  157.         loop({
  158.             Wtitle2:=@input({ 題名を入れてください},,Wtitle2);
  159.             case(@nochar(Wtitle2)>40,{Yes},{
  160.                 footnote({題名は, 全角20文字までです});
  161.                 im({Yes})
  162.             },,{im({No})
  163.             });
  164.         });
  165.         footnote({});
  166.         case(Wtitle2<>{},{Yes},{Wtitle:=Wtitle2});
  167.         case(@getchar(Wtitle,@nochar(Wtitle)-1,2),
  168.             {能},{    Wtitle:=Wtitle|{ }
  169.         });
  170.         Wtitle:=Wtitle|{\n};
  171.         im(Wtitle);
  172.     };
  173.  
  174.     %responce{[action]
  175.         var IndexLine[82];
  176.         var Wtitle[82];
  177.         var Wtitle2[82];
  178.         var Edit[3];
  179.         case(type<>{Prof},{Yes},{
  180.         SetTitle;
  181.         OutAllMemo;
  182.         case( (type={Forum} || type={Patio}) && action={SAY},{Yes},{
  183.             IndexLine:=@getchar(IndexLine,1,18)|{     };
  184.         });
  185.         madd(5,{});
  186.         case(type={Mail},{Yes},{
  187.             %tardata    @head(@getchar(IndexLine,7,8),{ });
  188.             case(@SelHandle<>{} && @body(Handle,,{/})<>{},{Yes},{
  189.                 madd(5,{FROM:}|@SelHandle|{\n})});
  190.         });
  191.         RESPONCE;
  192.         });
  193.     };
  194.  
  195.     %resp2{
  196.         var IndexLine[82];
  197.         var Wtitle[82];
  198.         var Wtitle2[82];
  199.         var Edit[3];
  200.         case(type<>{Mail},
  201.         {Yes},{    kind:={Yes};
  202.             SetTitle;
  203.             OutAllMemo;
  204.             madd(5,{});
  205.             %tardata    @head(@getchar(IndexLine,7,8),{ });
  206.             case(@SelHandle<>{} && @body(Handle,,{/})<>{},{Yes},{
  207.                 madd(5,{FROM:}|@SelHandle|{\n})});
  208.             RESPONCE;
  209.         },{No},{responce({SAY});
  210.         });
  211.     };
  212.  
  213.     %delmsg{[MARK]
  214.         %DELMSG{
  215.             OutAllMemo;
  216.             mclear(wm);
  217.             mmove(2,1,linenum-1,wm);
  218.             madd(wm,@getchar(Line,1,8));
  219.             case(MARK,
  220.             {D},{    case(@post(linenum),
  221.                 {保},{    madd(wm,{ });
  222.                 },{削},{madd(wm,MARK);
  223.                 });
  224.             },{C},{    case(@post2(linenum),
  225.                 {保},{    madd(wm,{ });
  226.                 },{切},{madd(wm,MARK);
  227.                 });
  228.             });
  229.             madd(wm,@getchar(Line,10,80));
  230.             mmove(2,linenum+1,maxline+1,wm);
  231.             mclear(2);
  232.             mcopy(wm,2);
  233.             mclear(wm);
  234.         };
  235.         %maxline @nolmemo(2)-1;
  236.         %Line @memo(2,linenum,1);
  237.         case(linenum>1 && linenum<maxline,{Yes},{DELMSG});
  238.         OutAllMemo;
  239.     };
  240.  
  241.     %copymsg{
  242.         OutAllMemo;
  243.         mclear(wm);
  244.         case(linenum!=1,{Yes},{
  245.             mmove(2,1,linenum-1,wm);
  246.         });
  247.         case(@copyset(linenum),
  248.           {保},{madd(wm,{ });
  249.         },    ,{madd(wm,{C});
  250.         });
  251.         madd(wm,@getchar(@memo(2,linenum,1),2,80));
  252.         mmove(2,linenum+1,@nolmemo(2),wm);
  253.         mclear(2);
  254.         mcopy(wm,2);
  255.         mclear(wm);
  256.         OutAllMemo;
  257.     };
  258.  
  259.     %TrueHandle{
  260.         loop({
  261.             case(@getchar(Handle,@nochar(Handle),1)={ },
  262.             {Yes},{    Handle:=@body(Handle,,{ }); im({Yes});
  263.             },{No},{
  264.                 case(@getchar(Handle,@nochar(Handle)-1,2)={ },
  265.                 {Yes},{    Handle:=@body(Handle,,{ }); im({Yes});
  266.                 },{No},{im({No});
  267.                 });
  268.             });
  269.         });
  270.     };
  271.  
  272.     %SetProf{
  273.         var IndexLine[82];
  274.         var ID[8];
  275.         var Handle[30];
  276.         var idp[2];
  277.         var tip[2];
  278.         %TL    @memo(4,1,1);
  279.         case(type,
  280.         {Forum},{case(MesType,{OLD},{idp:={11}; tip:={21}},
  281.                       {NEW},{idp:={13}; tip:={23}})
  282.         },{BUL},{idp:={7}; tip:={};
  283.         },{HP},{idp:={24}; tip:={};
  284.         },{Patio},{idp:={13}; tip:={23};
  285.         },{Mail},{idp:={23}; tip:={5};
  286.         },{Prof},{idp:={24}; tip:={1};
  287.         });
  288.         ID:=@getchar(TL,idp,8);
  289.         case(tip<>{},
  290.         {Yes},{    Handle:=@getchar(TL,tip,16);
  291.         },{No},{Handle:=ID;
  292.         });
  293.         TrueHandle;
  294.         OutAllMemo;
  295.         case(Handle=ID,{Yes},{
  296.             Handle:=@input({ ハンドル名を入力してください},,ID);
  297.         });
  298.         case(Handle={},{Yes},{Handle:=ID});
  299.         case(@YesNo({ 「}|Handle|{」 氏のプロフィールを}|
  300.             {受信予約しますか?}),{Yes},{
  301.             IndexLine:={予     Prof :}|ID|{         :}|Handle|{\n};
  302.             write(logd|{\UP\INDEX.TXT},IndexLine);
  303.         });
  304.     };
  305.  
  306.     %PlusHandle{
  307.         OutAllMemo;
  308.         mset(4,{n});
  309.         case(len>0,
  310.         {Yes},{
  311.             case(@mcheck!=0,{Yes},{ mclose(2) });
  312.             mclear(4);
  313.             mread(fname,4,st,len);
  314.             %line    @memo(4,1,1);
  315.             case(type,
  316.             {Forum},{case(MesType,
  317.                  {OLD},{pick:=@getchar(line,11,8);
  318.                     flag:={FO}
  319.                  },{NEW},{pick:=@getchar(line,13,8);
  320.                     flag:={FN}
  321.                 });
  322.             },{Mail},{case(@getchar(line,20,4)<>{PCV>},
  323.                   {Yes},{pick:=@getchar(line,23,8); flag:={MA}
  324.                   },{No},{pick:=@getchar(line,24,8); flag:={PC}
  325.                   });
  326.             });
  327.             case(@body(@memo(3),pick)={},{Yes},{
  328.                 case(flag,
  329.                 {FO},{madd(3,@getchar(line,11,28)|{\n});
  330.                 },{FN},{madd(3,@getchar(line,13,26)|{  \n});
  331.                 },{MA},{madd(3,pick|{  }|
  332.                         @getchar(line,5,16)|{  \n});
  333.                 },{PC},{madd(3,pick|{  (VAN)\n});
  334.                 });
  335.             });
  336.         });
  337.         linenum:=lno;
  338.         im(len<=0 && EOFproc<>{NEXT});
  339.     };
  340.  
  341.     %refer{
  342.         var lno[4];
  343.         %work    @mlast+1;
  344.         CloseAllMemo;
  345.         loop({
  346.             mopen(2,0,21,639,459,{w});
  347.             footnote({終了表示},{b});
  348.             loop({
  349.                 waitx(1000);
  350.                 im(@xtype!=2 && @xtype<100 || @xlinenum<0)
  351.             });
  352.             case(@PFK(@xtype)=2 || @PFK(@xtype)=102,
  353.             {Yes},{
  354.                 footnote({終了},{b});
  355.                 lno:=@xlinenum;
  356.                 case(@mcheck,2,{mclose(2)});
  357.                 %max @nolmemo(2)-1;
  358.                 case(lno,1,{lno:=2},max,{lno:=max-1});
  359.                 %st  @getchar(@memo(2,lno,1),1,8);
  360.                 %len @getchar(@memo(2,lno+1,1),1,8)-st;
  361.                 mread(fname,work,st,len);
  362.                 mopen(work,0,21,639,459,{r});
  363.                 loop({waitx(9999); im(@PFK(@xtype)!=101)});
  364.                 check(work);
  365.                 mclose(3);
  366.                 im({Yes});
  367.             },{No},{im({No});
  368.             });
  369.         });
  370.         check(2);
  371.         mclose(2);
  372.     };
  373.  
  374.     %loadmsg{[sign]
  375.         var lno[4];
  376.         var pick[10];
  377.         var adddata[30];
  378.         var flag[3];
  379.         %max @nolmemo(2)-1;
  380.         case(sign,
  381.         {+},{lno:=linenum+1},
  382.         {-},{lno:=linenum-1},
  383.         {=},{lno:=linenum});
  384.         case(linenum=1,{Yes},{lno:=2});
  385.         case(lno<=1,
  386.         {Yes},{    lno:=linenum;
  387.             Bell;
  388.             select({これ以前の発言はありません},1);
  389.         });
  390.         case(lno>=max,
  391.         {Yes},{    lno:=max-1;
  392.             Bell;
  393.             select({これ以降の発言はありません},1);
  394.         });
  395.         %st  @getchar(@memo(2,lno,1),1,8);
  396.         %len @getchar(@memo(2,lno+1,1),1,8)-st;
  397.         PlusHandle;
  398.     };
  399.  
  400.     %dispone{
  401.         var cont[4];
  402.         var kind[4];
  403.         cont:={Yes};
  404.         madd(4,{});
  405.         case(@loadmsg({=}),{Yes},{
  406.             loop({loadmsg({+})});
  407.         });
  408.         loop({
  409.             kind:={};
  410.             %wm    {5};
  411.             mclear(5);
  412.             mopen(4,0,21,639,459,{r});
  413.             footnote({終了 前  次 }|@post(linenum)|{次}
  414.             |@post2(linenum)|{次応答発言        参照MAILPROF},{b});
  415.             loop({    waitx(1000);
  416.                 case(@mcheck<>4,{Yes},{mopen(4)});
  417.                 im(@xtype<100);
  418.             });
  419.             case(@PFK(@xtype),
  420.             101,{EOFproc:={SEL}; cont:={No}},
  421.             102,{loop({loadmsg({-})})},
  422.             103,{loop({loadmsg({+})})},
  423.             104,{delmsg({D}); loadmsg({+})},
  424.             105,{delmsg({C}); loadmsg({+})},
  425.             106,{responce({RES})},
  426.             107,{responce({SAY})},
  427.             110,{refer},
  428.             111,{resp2},
  429.             112,{SetProf},
  430.                ,OutAllMemo);
  431.             case(@mcheck!=0 && @mlast>4,{Yes},{mclose(3)});
  432.             CloseAllMemo;
  433.             im(cont)
  434.         });
  435.         mset(4,{n});
  436.     };
  437.  
  438.     %post{[ptr]
  439.         case(@getchar(@memo(2,ptr,1),9,1),
  440.         {D},{    im({保});
  441.         }, ,{    im({削});
  442.         });
  443.     };
  444.  
  445.     %post2{[ptr]
  446.         case(@getchar(@memo(2,ptr,1),9,1),
  447.         {C},{    im({保});
  448.         }, ,{    im({切});
  449.         });
  450.     };
  451.  
  452.     %del{
  453.         delfile(MesDat);
  454.     };
  455.  
  456.     %MesDat   tmpdir|{\_TMP.DAT};
  457.     mclear(2);
  458.     HEADER;
  459.     TREE:={No};
  460.     case(@nolmemo(2)!=3,
  461.     {Yes},{
  462.         loop({
  463.         %wm    {4};
  464.         var Note[80];
  465.         mopen(2,0,21,639,459,{w});
  466.         curline(linenum);
  467.         Note:={終了    表示削保切保除去切出        全除};
  468.         footnote(Note,{b});
  469.         loop({waitx(1000);
  470.             im(@xtype!=2 && @xtype<100 || @xlinenum<0)
  471.         });
  472.         linenum := @xlinenum;
  473.         case(@PFK(@xtype),
  474.             2,{    CloseAllMemo;
  475.             dispone;
  476.             im({Yes});
  477.         },101,{ im({No});
  478.         },102,{ CloseAllMemo;
  479.             EXTERNAL({},{});
  480.             im({Yes});
  481.         },103,{ CloseAllMemo;
  482.             dispone;
  483.             im({Yes});
  484.         },104,{ %maxline @nolmemo(2)-1;
  485.             case(linenum>1 && linenum<maxline && TREE={No},
  486.             {Yes},{    delmsg({D});
  487.                 linenum:=linenum+1;
  488.                 case(linenum>=maxline,{Yes},{
  489.                     linenum:=maxline;
  490.                 });
  491.             },{No},{OutAllMemo;
  492.             });
  493.             im({Yes});
  494.         },105,{ %maxline @nolmemo(2)-1;
  495.             delmsg({C});
  496.             linenum:=linenum+1;
  497.             case(linenum>=maxline,{Yes},{
  498.                 linenum:=maxline;
  499.             });
  500.             im({Yes});
  501.         },106,{    %key    {PF5};
  502.             EXPIRE;
  503.         },107,{    %key    {PF7};
  504.             EXPIRE;
  505.         },110,{    CloseAllMemo;
  506.             case(@rmlog(fname),
  507.             {Yes}, {im({No});
  508.             },{No},{im({Yes});
  509.             });
  510.         },   ,{ OutAllMemo;
  511.             im({Yes});
  512.         });
  513.         });
  514.     },{No},{
  515.         footnote({});
  516.         ok({ログファイルに発言が記録されていません});
  517.     });
  518.     CloseAllMemo;
  519.     %member @body(fname,,{\})|{\MEMBER.TXT};
  520.     case(@memo(3)<>{} && @nolmemo(3)>memnum,{Yes},{mwrite(member,3)});
  521.     DeleteMemo;
  522.     mset(2,{n});
  523.     del;
  524. };
  525.  
  526. %delmark{[fname]
  527.     case(@filechk(fname),
  528.     {No},{
  529.         mclear(2);
  530.         %line @memo(1,boadnum,1);
  531.         mmove(1,1,boadnum-1,2);
  532.         madd(2,{ }|@getchar(line,2,80));
  533.         mmove(1,boadnum+1,@nolmemo(1),2);
  534.         mclear(1);
  535.         mcopy(2,1);
  536.     });
  537. };
  538.  
  539. %rmlog{[fname]
  540.     select({ 受信ログファイル「}|fname|{」を削除します},9999,{im({No});
  541.     },{ O K },{
  542.         delfile(fname);
  543.         delmark(fname);
  544.         im({Yes});
  545.     },{ N G },{
  546.         im({No});
  547.     });
  548. };
  549.  
  550. %dispFile{[filename]
  551.     case(@filechk(logd|{\}|filename),{Yes},{
  552.         mclear(2);
  553.         mread(logd|{\}|filename,2);
  554.         mopen(2,0,21,639,459,{w});
  555.         footnote({終了},{b});
  556.         loop({waitx(1000);
  557.             case(@xtype=2,{Yes},{
  558.                 %tarline    @memo(2,@xlinenum,1);
  559.                 %tarnum    @getchar(tarline,3,2);
  560.                 case(    @getchar(tarline,1,2)={  } &&
  561.                     @getchar(tarline,5,2)={  },
  562.                 {Yes},{
  563.                     case(@YesNo({ }|tarnum|
  564.                         {番のお知らせを受信します}),{Yes},{
  565.                     write(logd|{\UP\INDEX.TXT},
  566.             {予     NEW  :        /}|tarnum|{/     :今週のお知らせ\n});
  567.                     });
  568.                 });
  569.             });
  570.             im(@xtype<100)
  571.         });
  572.         case(@mcheck!=0,{Yes},{mclose(3)});
  573.         mset(2,{n})
  574.     },{No},{
  575.         ok({受信済みのファイルがありません});
  576.     })
  577. };
  578.  
  579. %delboad{
  580.     %line @memo(1,boadnum,1);
  581.     %type @getchar(line,11,14);
  582.     %name @head(@getchar(line,2,8),{ });
  583.     %delerr{
  584.         ok({ このファイルは消せません});
  585.     };
  586.     %Dir{[dir1,dir2]
  587.         rmlog(logd|dir1|name|dir2);
  588.     };
  589.     case(type,
  590.     {最新のNifty オ},{ delerr;
  591.     },{最新のNifty 課},{ delerr;
  592.     },{アクセス履歴情},{ delerr;
  593.     },{受信したメール},{ rmlog(logd|{\MAIL\MAIL.LOG});
  594.     },{HPの最新オープ},{ Dir({\HP\},{.TLT});
  595.     },{HPの内容      },{ Dir({\HP\},{.LOG});
  596.     },{HPの最近の参照},{ Dir({\HP\},{.USR});
  597.     },{Patio のオープ},{ Dir({\PATIO\},{.TLT});
  598.     },{Patio の最近の},{ Dir({\PATIO\},{.USR});
  599.     },{オープニングメ},{ Dir({\},{\TITLE.LOG});
  600.     },{掲示板の内容  },{ Dir({\},{\BUL.LOG});
  601.     },{会議室オープニ},{ delerr;
  602.     },,{
  603.         case(@getchar(type,3,7),
  604.         {会議室 },{
  605.         %num @case(@getchar(line,11,1),
  606.                 { },{im({0}|@getchar(line,12,1))},
  607.                    ,{getchar(line,11,2)}
  608.         );
  609.         Dir({\},{\}|{MES}|num|{.LOG});
  610.         },{tio    },{
  611.         Dir({\PATIO\},{.LOG});
  612.         });
  613.     });
  614. };
  615.  
  616. %dispboad{
  617.     %line @memo(1,boadnum,1);
  618.     %type @getchar(line,11,14);
  619.     %name @head(@getchar(line,2,8),{ });
  620.     chg:={};
  621.     case(type,
  622.     {最新のNifty オ},{dispFile({TITLE.LOG})},
  623.     {最新のNifty 課},{dispFile({BILL.LOG})},
  624.     {アクセス履歴情},{dispFile({ACCOUNT.TXT})},
  625.     {受信したメール},{
  626.         %filename logd|{\MAIL\MAIL.LOG};
  627.         case(@filechk(filename),
  628.         {Yes},{boadmenu(filename,{Mail},name,{1},{0});
  629.         },{No},{ok({受信済のメールがありません})
  630.         })},
  631.     {受信したプロフ},{
  632.         %filename logd|{\MAIL\PROFILE.LOG};
  633.         case(@filechk(filename),
  634.         {Yes},{boadmenu(filename,{Prof},name,{1},{0});
  635.         },{No},{ok({受信したプロフィールはありません})
  636.         })},
  637.     {HPの最新オープ},{dispFile({HP\}|name|{.TLT})},
  638.     {HPの内容      },{
  639.         %filename logd|{\HP\}|name|{.LOG};
  640.         case(@filechk(filename),
  641.         {Yes},{boadmenu(filename,{HP},name,{1},{0});
  642.         },{No},{ok({このHPには受信済のメッセージがありません})
  643.         })},
  644.     {Patio のオープ},{dispFile({PATIO\}|name|{.TLT})},
  645.     {HPの最近の参照},{dispFile({HP\}|name|{.USR})},
  646.     {Patio の最近の},{dispFile({PATIO\}|name|{.USR})},
  647.     {オープニングメ},{dispFile(name|{\TITLE.LOG})},
  648.     {掲示板の内容  },{
  649.         %filename logd|{\}|name|{\BUL.LOG};
  650.         case(@filechk(filename),
  651.         {Yes},{boadmenu(filename,{BUL},name,{1},{0});
  652.         },{No},{ok({受信済の掲示板メッセージがありません})
  653.         })},
  654.     {会議室オープニ},{dispFile(name|{\MESTITLE.LOG})},
  655.     ,{
  656.         case(@getchar(type,3,7),
  657.         {会議室 },{
  658.         %num @case(@getchar(line,11,1),
  659.                 { },{im({0}|@getchar(line,12,1))},
  660.                    ,{getchar(line,11,2)}
  661.         );
  662.         %filename logd|{\}|name|{\}|{MES}|num|{.LOG};
  663.         UnReadL:=@getchar(@memo(1,boadnum),26,3);
  664.         case(@filechk(filename),
  665.         {Yes},{ boadmenu(filename,{Forum},name,{1},{0});
  666.         },{No},{ok({この会議室には,受信済のメッセージがありません})
  667.         });
  668.         },{tio    },{
  669.         %filename logd|{\PATIO\}|name|{.LOG};
  670.         UnReadL:=@getchar(@memo(1,boadnum),26,3);
  671.         case(@filechk(filename),
  672.         {Yes},{boadmenu(filename,{Patio},name,{1},{0});
  673.         },{No},{ok({このPatioには受信済のメッセージがありません})
  674.         })
  675.         });
  676.     });
  677.     case(chg,{Yes},{ChkDrv(current,mr)});
  678. };
  679.  
  680. %DispMail{[fn]
  681.     var filename[80];
  682.     case(@ChkDrv(logm1,mm),{Yes},{
  683.         chg:={Y};
  684.         note({メール});
  685.         setcdir2(logm1);
  686.         case(fn={},
  687.         {Yes},{    %file    @filesel;
  688.             filename:=@getcdir2|{\}|file;
  689.         },{No},{filename:=fn;
  690.         });
  691.         case(@filechk(filename),
  692.         {Yes},{boadmenu(filename,{Mail},name,{1},{0});
  693.         },{No},{ok({保存メールがありません});
  694.         })
  695.     });
  696. };
  697.  
  698. %setcnt{
  699.     select({ 処理を指定してください},9999,{first:={};
  700.     },{  全発言表示  },{first:=1;
  701.     },{ 開始発言指定 },{
  702.         %f @input({ 表示開始番号を指定してください});
  703.         first:=@getchar(f,1,5);
  704.         %c @input({ 表示数を指定してください});
  705.         cnt:=@getchar(c,1,5);
  706. /*    },{ 先頭部分表示 },{
  707.         first:=1;
  708.         cnt:=10;*/
  709.     },{   処理中止   },{first:={};
  710.     });
  711.     case(cnt={},{Yes},{cnt:=0});
  712. };
  713.  
  714. %DispHP{[fn,Type,Type2,mes]
  715.     var filename[80];
  716.     %DHP{
  717.         case(@filechk(filename),
  718.         {Yes},{    var first[5];
  719.             var cnt[3];
  720.             setcnt;
  721.             case(first<>{},
  722.             {Yes},{    boadmenu(filename,Type2,name,first,cnt);
  723.             });
  724.         },{No},{ ok({保存}|mes|{ログがありません});
  725.         })
  726.     };
  727.     case(@ChkDrv(logh1,mh),{Yes},{
  728.         chg:={Y};
  729.         setcdir2(logh1);
  730.         case(fn={},
  731.         {Yes},{    note(mes);
  732.             filename:=@filesel;
  733.             %name    @head(filename,{.});
  734.             filename:=@getcdir2|{\}|filename;
  735.             DHP;
  736.         },{No},{filename:=fn;
  737.             DHP;
  738.         });
  739.     });
  740. };
  741.  
  742. %DispForum{[fn,type]
  743.     var filename[80];
  744.     %DForum{[type]
  745.         case(@filechk(filename),
  746.         {Yes},{
  747.             case(type,
  748.             {Forum},{
  749.             var first[5];
  750.             var cnt[3];
  751.             setcnt;
  752.             case(first<>{},{Yes},{
  753.                 boadmenu(filename,type,name,first,cnt);
  754.             });
  755.             },,{
  756.             boadmenu(filename,type,name,{1},{0});
  757.             });
  758.         },{No},{ ok({保存会議室がありません});
  759.         });
  760.     };
  761.     %DispMes{[type]
  762.         case(@ChkDrv(logc1,mc),{Yes},{
  763.             chg:={Y};
  764.             case(fn={},
  765.             {Yes}, {note({フォーラム});
  766.                 setcdir2(logc1);
  767.                 filename:=@filesel;
  768.                 %name    @tail(@getcdir2,{\});
  769.                 %num     @getchar(filename,4,2);
  770.                 filename:=@getcdir2|{\}|filename;
  771.                 DForum(type);
  772.             },{No},{filename:=fn;
  773.                 DForum(type);
  774.             });
  775.         });
  776.     };
  777.     %DispBul{[type]
  778.         case(@ChkDrv(logb1,mb),{Yes},{
  779.             chg:={Y};
  780.             case(fn={},
  781.             {Yes}, {note({掲示板});
  782.                 setcdir2(logc1);
  783.                 filename:=@filesel;
  784.                 %name    @tail(@getcdir2,{\});
  785.                 filename:=@getcdir2|{\}|filename;
  786.                 DForum(type);
  787.             },{No},{filename:=fn;
  788.                 DForum(type);
  789.             });
  790.         });
  791.     };
  792.  
  793.     case(type,
  794.     {Forum},{ DispMes(type);
  795.     },{BUL},{ DispBul(type);
  796.     });
  797. };
  798.  
  799. %selback{
  800.     var name[10];
  801.     %type    @select({ 参照するバックアップログの種類は?},
  802.             9999,{im({})},
  803.             { メール },{im({Mail})},
  804.             {  HP  },{im({HP})},
  805.             {パティオ},{im({Patio})},
  806.             { 会議室 },{im({Forum})},
  807.             { 掲示板 },{im({BUL})});
  808.     chg:={};
  809.     case(type,
  810.       {Mail},    {DispMail({});
  811.     },{HP},        {DispHP({},hp,{HP},{HP});
  812.     },{Patio},    {DispHP({},patio,{Patio},{パティオ});
  813.     },{Forum},    {DispForum({},{Forum});
  814.     },{BUL},    {DispForum({},{BUL});
  815.     });
  816.     case(chg,{Yes},{ChkDrv(current,mr)});
  817. };
  818.  
  819. %dispback{
  820.     var name[10];
  821.     %line @memo(1,boadnum,1);
  822.     %type @getchar(line,11,14);
  823.     %name @head(@getchar(line,2,8),{ });
  824.     chg:={};
  825.     case(type,
  826.     {受信したメール},{
  827.         %filename logm1|{\MAIL}|mrgsuff;
  828.         DispMail(filename);
  829.     },{HPの内容      },{
  830.         %filename logh1|{\}|name|mrgsuff;
  831.         DispHP(filename,{hp},{HP},{HP});
  832.     },,{
  833.         case(@getchar(type,3,6),
  834.         {示板の},{
  835.         %filename logb1|{\}|name|logb2|{\BUL}|mrgsuff;
  836.         DispForum(filename,{BUL});
  837.         },
  838.         {会議室},{
  839.         %num @case(@getchar(line,11,1),
  840.                 { },{im({0}|@getchar(line,12,1))},
  841.                    ,{getchar(line,11,2)}
  842.         );
  843.         %filename logc1|{\}|name|logc2|{\MES}|num|mrgsuff;
  844.         DispForum(filename,{Forum});
  845.         },
  846.         {tio   },{
  847.         %filename logh1|{\}|name|mrgsuff;
  848.         DispHP(filename,{patio},{Patio},{パティオ});
  849.         });
  850.     });
  851.     case(chg,{Yes},{ChkDrv(current,mr)});
  852. };
  853.  
  854. var boadnum[10];
  855. var UnReadL[4];
  856. var func[4];
  857. var EOFproc[4];
  858. EOFproc:={SEL};
  859. footnote({ 受信文書の一覧を作成中です});
  860. Treq:={VIEW};
  861. TITLE;
  862. boadnum:=0;
  863. loop({
  864.     case(EOFproc,
  865.     {SEL},{
  866.         mopen(1,0,21,639,459,{r});
  867.         curline(boadnum);
  868.         footnote({終了        表示    保呼ファイル        全除},{b});
  869.         loop({
  870.             waitx(1000);
  871.             im(@xtype!=1 && @xtype<100 || @xlinenum<0)
  872.         });
  873.         boadnum :=@xlinenum;
  874.         func    :=@PFK(@xtype);
  875.     },{NEXT},{
  876.         boadnum :=boadnum+1;
  877.         func    :=103;
  878.     });
  879.     case(func,
  880.         1,{    CloseAllMemo;
  881.         dispboad;
  882.     },101,{
  883.     },104,{ CloseAllMemo;
  884.         dispboad;
  885.     },106,{ CloseAllMemo;
  886.         dispback;
  887.     },107,{ CloseAllMemo;
  888.         selback;
  889.     },110,{ CloseAllMemo;
  890.         delboad;
  891.     },   ,{ OutAllMemo;
  892.     });
  893.     im(func<>101)
  894. });
  895. footnote({});
  896. allclear;
  897.